// https://leetcode.cn/problems/valid-triangle-number/description/
// class Solution {
// public:
//     int triangleNumber(vector<int>& nums) {
//         // 给我们三个数是否可以构成三角形。仅需判断较小的两个数大于第三个就好了
//         // 单调性 优化一 先排序
//         sort(nums.begin(), nums.end());
//         int sum=0;
//         for (int i = nums.size() - 1; i >= 2; i--) 
//         {
//             int cur = 0;
//             int dest = i - 1;
//             while (cur <= dest) 
//             {
//                 if ((nums[cur] + nums[dest]) > nums[i]) 
//                 {
//                     sum += (dest - cur);
//                     dest--;
//                 } else {
//                     if ((nums[cur] + nums[dest]) <= nums[i]) 
//                     {
//                         cur++;
//                     }
//                 }
            
//             }
//         }
//         return sum;
//     }
//};